package Beans;

import java.io.Serializable;
import java.sql.Date;
import javax.faces.bean.SessionScoped;


/**
 * Klasse som tar vare på løp-opplysninger
 * @author Gruppe1
 */
@SessionScoped

public class Lop implements Serializable{
    
    private String lopnavn;
    private double distanse;
    private String beskrivelse;
    private Date dato;
    private int lop_id;
        
    /**
     * Konstruktør for Lop; tom
     */
    public Lop(){}
    /**
     * Konstruktør for Lop
     * @param l
     */
    public Lop(Lop l){
        lopnavn = l.getLopnavn();
        distanse = l.getDistanse();
        beskrivelse = l.getBeskrivelse();
        dato = l.getDate();
        lop_id = l.getLop_id();
    }

    /**
     * Konstuktør for løp med lop_id
     * @param lop_id
     * @param lopnavn
     * @param dato
     * @param distanse
     * @param beskrivelse
     */
    public Lop(int lop_id, String lopnavn, Date dato, double distanse, String beskrivelse) {
        this.lop_id = lop_id;
        this.lopnavn = lopnavn;
        this.dato = dato;
        this.distanse = distanse;
        this.beskrivelse = beskrivelse;
    }

    /**
     * Konstruktør for løp uten lop_id
     * @param lopnavn
     * @param dato
     * @param distanse
     * @param beskrivelse
     */
    public Lop(String lopnavn, Date dato, double distanse, String beskrivelse ) {
        this.lopnavn = lopnavn;
        this.distanse = distanse;
        this.beskrivelse = beskrivelse;
        this.dato = dato;
    }
    

    /**
     * Hent beskrivelse
     * @return beskrivelsen for et løp
     */
    public String getBeskrivelse() {
        return beskrivelse;
    }

    /**
     * Sett beskrivelsen
     * @param beskrivelse
     */
    public void setBeskrivelse(String beskrivelse) {
        this.beskrivelse = beskrivelse;
    }

    /**
     * Hent distanse
     * @return distansen for et løp
     */
    public double getDistanse() {
        return distanse;
    }

    /**
     * Sett distansen til et løp
     * @param distanse
     */
    public void setDistanse(double distanse) {
        this.distanse = distanse;
    }
    
    /**
     * Hent datoen for et løp
     * @return datoen til et løp
     */
    public Date getDate(){
        return dato;
    }
    
    /**
     * Sett datoen for et løp
     * @param dato
     */
    public void setDate(Date dato){
       this.dato = dato;
    }

    /**
     * Hent lopnavn
     * @return navnet til et løp
     */
    public String getLopnavn() {
        return lopnavn;
    }

    /**
     * Sett navn på løp
     * @param lopnavn
     */
    public void setLopnavn(String lopnavn) {
        this.lopnavn = lopnavn;
    }

    /**
     * Hent id-en til et løp
     * @return id-en til løpet
     */
    public int getLop_id() {
        return lop_id;
    }

    /**
     * Sett id til et løp
     * @param lop_id
     */
    public void setLop_id(int lop_id) {
        this.lop_id = lop_id;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Lop other = (Lop) obj;
        if ((this.lopnavn == null) ? (other.lopnavn != null) : !this.lopnavn.equals(other.lopnavn)) {
            return false;
        }
        if (Double.doubleToLongBits(this.distanse) != Double.doubleToLongBits(other.distanse)) {
            return false;
        }
        if (this.dato != other.dato && (this.dato == null || !this.dato.equals(other.dato))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return lopnavn + ", distanse: " + distanse + ", dato: " + dato + ", " + lop_id;
    }

}
